%function Full_Welfare

clear
load resultsFMIN.mat

clearvars snPass

%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%;
% 1. Getting ready for graphs
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%;

% Cost parameters (in thousand Kwacha);
cp.alpha  = 48;           % Public benefit per tree;
cp.eta    = 1.2;          % Cost of public funds;
cp.mon    = 35;           % Monitoring cost;
cp.cb     = (1/(1+0.03)); % Cost of borrowing;

% Run parameters, tolerance is unchanged
rp.parl    = 0;
rp.m       = 200;
rp.k       = 1;
rp.lam     = 0;
rp.theseed = rp.theseed+1000;


rng(rp.theseed);
snPass.s       = rand(obs*(3*rp.k + rp.m),1);

% These two lines create a (k x m x 51) matrix, where the first floor is a
% (k x m) matrix of ones, the second a (k x m) matrix of twos, up to 51;
% Nv is just N repeated k x 51 times;
% the fourth and fifth are true false matrices for N vs. Nbar;
Ntr            = permute(N,[3,1,2]);
snPass.N3D     = Ntr(ones(rp.k,1),ones(rp.m,1),:);
snPass.Nv      = N(ones(rp.k,1),:);
snPass.Ngeq3D  = (snPass.N3D>=Nbar);
snPass.N03D    = (snPass.N3D>0);
snPass.Ngeqv   = (snPass.Nv>=Nbar);
snPass.N0v     = (snPass.Nv>0);

% Add cluster (group/village) data
%load('Matlab_2014_12_cluster.mat')
%group = st_dataset(:,58);
%group = double(group);




%%
% Must reset several values, setting to 0: F_surp (F_treat), F_moni, and
% F_shift -- This removes this context specific shifters. Further, must
% redefine Nmatrices because of new k/m dimensions

theta_hat0 = [theta_hat2(1:6),0,0,0]; % Ensures F_* parameters = 0

TG0   = zeros(obs,1);      % Alternate treatment vector, set = 0
MON0  = zeros(obs,1);      % Alternate monitoring vector, set = 0


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 2a) Varying Uncertainty on expected profits and trees
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


Avalues_G1  = [0:12,0:12];
Rvalues_G1  = [zeros(1,13),150*ones(1,13)];
if length(Avalues_G1)==length(Rvalues_G1)
    sAR      = length(Rvalues_G1);
end

prep = coefftran(theta_hat0,0);
sdf1_est = prep(5);
sd_F1_G1 = [0,0.5*sdf1_est,sdf1_est,2*sdf1_est];

%%


ssdf1    = length(sd_F1_G1);
counter  = 1;

for j=1:sAR
    for l=1:ssdf1
        sd_F1unc = sd_F1_G1(l);
        
        Aunc     = Avalues_G1(j).*ones(obs,1);
        Runc     = Rvalues_G1(j).*ones(obs,1);
        
        theta_hat_G1 = coefftran(theta_hat0,0);
        theta_hat_G1(5) = sd_F1unc;
        theta_run    = theta_hat_G1
        
        [PartProb,Npdf,Nobs,Prof1,Prof0,EN,OV,Prof0_C] = Full_Simulate(theta_run,DP,Aunc,Runc,TG0,MON0,snPass,rp);
        
        [mW_u(l,j),mP_u(l,j),mProf0_u(l,j),mPProf0_u(l,j),mProf0_C_u(l,j),mPProf1_u(l,j),mPN_u(l,j),mPComp_u(l,j),mPOV_u(l,j)] =...
            zambia_postanalyze(cp,rp,Aunc,Runc,Npdf,PartProb,Nobs,Prof1,Prof0,EN,OV,Prof0_C);
        
        obsDR   = ~PartProb;
        NobsDR  = Nobs;
        NobsDR(obsDR)=[];

        m00C_u(l,j) = mean((NobsDR==0))/mP_u(l,j);     
        m50C_u(l,j) = mean((NobsDR==50))/mP_u(l,j);
                 
        counter=counter+1
    end
end

save 'postest_welfare_figNumbersAll.mat'
%%

load 'postest_welfare_figNumbersAll.mat'
%%

outputmat = [mPN_u; mPN_u./mP_u; mP_u; mPComp_u./mP_u; mPProf0_u; mPOV_u; mPOV_u./mPProf0_u];

csvwrite('allNumericalOutput.csv',outputmat)

%%
display('Tree Survival, unconditional')
display('A0R0, A12R0, A0R150, A12R150')
mPN_u

display('Tree Survival, conditional on take-up')
display('A0R0, A12R0, A0R150, A12R150')
mPN_u./mP_u

%%
display('Percent take up')
display('A0R0, A12R0, A0R150, A12R150')
mP_u

display('Percent 35+, conditional on take-up')
display('A0R0, A12R0, A0R150, A12R150')
mPComp_u./mP_u


%%
display('Expected Profit')
display('A0R0, A12R0, A0R150, A12R150')
mPProf0_u

display('Option Value')
display('A0R0, A12R0, A0R150, A12R150')
mPOV_u

display('Portion of EProfit from OV')
display('A0R0, A12R0, A0R150, A12R150')
mPOV_u./mPProf0_u


